For this week's assignment, It was required to make an in-circuit programmer. It was required to mill the board, stuff it with components and program it.
What is the FabISP?
The FabISP is an in-system programmer for AVR microcontrollers, designed for production within a FabLab. It allows you to program the microcontrollers on other boards you make.
To do this, there are 6 main steps:
1. Preparing your file.
2. Preparing your machine.
3. Mill your board.
4. Cut your board.
5. Solder components.
6. Programming the board.
Modella MDX 20
The Roland Modela MDX-20 is a small milling machine and a 2 1/2D precision scanner.This machine is mostly used for milling circuit boards, though it can also mill in other soft materials like machinable wax.
For milling circuit boards you should export you design into a black&white monocroome png. For milling out 3 dimensional molds you should export your design as .stl. The second use of this machine is scanning. It uses a thin needle to gently touch the object and calculates from this a 2 and a half dimensional model. Though slow at processing, it can create a high detailed model.
We use CNC mill for making PCB boards
FabTinyISp
It is a ATtiny45 based board having high-performance, low-power Atmel 8-bit AVR RISC-based microcontroller combines 4KB ISP flash memory, 256-Byte EEPROM, 256B SRAM, 6 general purpose I/O lines, 32 general purpose working registers, one 8-bit timer/counter with compare modes, one 8-bit high speed timer/counter, USI, internal and external Interrupts, 4-channel 10-bit A/D converter, programmable watchdog timer with internal oscillator, three software selectable power saving modes, and debugWIRE for on-chip debugging.
The device achieves a throughput of 20 MIPS at 20 MHz and operates between 2.7 - 5.5 volts.I choose Brian's verson because this design doesn't have any clock circuits and additional LED's are there to indicating the status of the board while programming.
Before we begin milling, first we have to prepare a PCB. For that attach a double sided tape to a PCB and place it on the CNC mill.
Attach a double sided tape to the back of the PCB and stick it on to the sacrifical layer.
An L-key is used for releasing the bit from the chuck
To set the Z-value correctly
open Fab Modules by typing fab on linux terminal or you can use the online version. In Fab Module Select Image(.png) as Input and Roland MDX-20 mill(rml) as ouput Process and Click make_png_rml .
Now Fab Module will open a new window, and here we need to image for milling by clicking load.png, and don't forget to select the mill trace (1/64) for milling and click the make.path to create path for milling.
Now set the 'X'axis and 'Y'axis First click the View button on the Modela Control panel.
Now change the bit ,For milling we use 1/64 bit.
Now set the Correct X and Y axis based on our PCB board Position. For setting Z'axis ,set the x and y then by using UP and Down button just stop the nearby the PCB and then losen the 'Bit' and tight it when it's touch the PCB , that's all we now set the Z axis.
so first load the Image in Fab Module and make the path after that send it to machine to cutting
Make sure to set the bit as the cut board(1/32).
Then make.path and make.rml and start process by clicking Send it
Soldering
Soldering was really a tough job for me.This was the first time like i am trying to understand milling and soldering.Everyone was trying to teach how to solder it properly.
I begin with making a list of the components that I am going to use.Since i have no idea about all these, i was exactly trying to follow my friends.After making the list i tried to collect the resistors etc by myself from the shelf.Everything seems to be the same i first but somehow i managed to collect the components from the shelf.
Parts
1x ATtiny45 or ATtiny85
2x 1kΩ resistors
2x 499Ω resistors
2x 49Ω resistors
2x 3.3v zener diodes
1x red LED
1x green LED
1x 100nF capacitor
1x 2x3 pin header
This is the first ever slodering in my life.
I took lots of time to solder each component.Everyone was trying to help me and they taught me how to solder the components without excess solder.
Now we need to upload the program code for the fabISP.I am using Linux , so first we need to install avr-gcc tool-chain, type this on terminal to install tool-chian sudo
After Installtion unzip the downloaded firmware and open terminal.
Now we can see the files , next we need to open the Makefile for ensuring it's configured for the ATTiny.i used nano to open the file Just type nano Makefile
Now we can confirm that, it's configured for the ATTiny
We need another Progarmmer for Progarmme the ISP Progarmmer.
In terminal (at the firmware file path) type MAKE
to Genarate the hex for flashing. Now we can see some new files,that was automatically genarated make file script. Now Connect the Old ISP and connect to our new ISP. and check the new ISP was detected in Computer by Typing lsusb
Now we are ready to flash. Type, make flash to flash the firmware to new ISP.
Now we are successfully flashed.
We need activate the fuse in order to act our ISP as a progarmmer.
For activating fuse,
make fuse
it will automatically , activate the fuse.
GROUP ASSIGNMENT
This Week we need characterize the specifications of our PCB production process i exaplined all procedure on the PCB Production section so next one is to find-out the how much resolution of 1/64 and 1/100 bit can mill and find out the difference.
First we tried it with 1/64 bit
You can see some copper part is not milled correctly,because we used offset as 4
Now we got perfect one, there is no extra copper in this board.We can clearly see 1/64 only milled 0.20, and all other it's just passed. So next we tried it with 1/32
We can clearly see all this got messed up with 1/32.This images cleary shows the milling resolution of 1/64 and 1/32 bit .